/**
 * @author Anderson R. Livramento
 * Copyright (C) 2008 Anderson Rodrigues Livramento <anderdevel@users.sourceforge.net>
 *
 * O conteúdo deste arquivo está disponível dentro dos termos 
 * da Licença Pública Geral GNU como publicada pela 
 * Fundação do Software Livre (FSF); na versão 2 da Licença, ou
 * (na sua opnião) qualquer versão mais recente.
 *
 * Este programa é distribuído na esperança que possa ser útil,
 * mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a
 * qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
 * Licença Pública Geral GNU para maiores detalhes.
 *
 * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob
 * o título "LICENCA.txt", junto com este programa; se não, escreva para
 * a Fundação do Software Livre(FSF) Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  US
 */
function createXMLHttpRequest() {
  var xmlObj;
	try{
		xmlObj = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e){
		try{
			xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (oc){
			xmlObj = null;
		}
	}
	if (!xmlObj && typeof XMLHttpRequest != "undefined"){
	  xmlObj = new XMLHttpRequest();
	}	
  return xmlObj;
}

function retrieveURL(url,methodType,func_event,nocontent_event){
  var req;
  var args = retrieveURL.arguments;
  req = createXMLHttpRequest();
  req.onreadystatechange = function(){
      if (req.readyState == 4){ 
        switch(req.status){
          case 200 :
            func_event(req.responseText);
          break;
          
          case 204 :
            nocontent_event();
          break;
          
          default :
            alert("Problema: " + req.status + " - " + req.statusText);
        }
      }  
    }
  try {
    req.open(methodType,url,true);
  }
  catch (e) {
    alert(e);
  }
  if (methodType == "POST"){
    req.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    if (args.length > 4){
      req.send(args[4]);
    }
  }
  else{
    req.send(null);
  }  
}

function retrieveURLXml(url,methodType,func_event,nocontent_event){
  var req;
  var args = retrieveURLXml.arguments;
  req = createXMLHttpRequest();
  req.onreadystatechange = function(){
    if (req.readyState == 4){
      switch(req.status){
        case 200 :
          func_event(req.responseXML);
        break;
         
        case 204 :
          nocontent_event();
        break;
         
        default  :
          alert("Problema: " + req.status + " - " + req.statusText);
      }
    }  
  }
  try {
    req.open(methodType, url, true);
  }
  catch (e) {
    alert(e);
  }
  if (methodType == "POST"){
    req.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    if (args.length > 4){
      req.send(args[4]);
    }
  }
  else{
    req.send(null);
  }  
}
